package cn.vivi.design.single;

/**
 * 懒汉式-静态内部类
 * 实例由内部类创建，jvm 在加载外部类的过程中，是不会加载静态内部类的
 * 只有内部类的属性和方法被调用的时候才会被加载，并初始化其静态属性
 * 内部类的静态属性由于被 static 修饰，保证只被实例化一次
 */
public class Singleton3 {

    private static class SingletonHandler {
        private static final Singleton3 instance = new Singleton3();
    }

    private Singleton3() {
    }

    public static Singleton3 getInstance() {
        return SingletonHandler.instance;
    }

}
